﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HR.Appointments.Service.DataAccessLayer
{
    /// <summary>
    /// Gets the workstations from the database
    /// </summary>
    public interface IWorkstationDAO
    {
        /// <summary>
        /// Delete a workstation from the database
        /// </summary>
        /// <param name="companyId">Company identifier</param>
        /// <param name="workstationId">Workstation identifier</param>
        void Delete(int companyId, int workstationId);

        /// <summary>
        /// Insert a new workstation into the database
        /// </summary>
        /// <param name="workstation">A valid entity</param>
        void Insert(WorkstationEntity workstation);

        /// <summary>
        /// Update a workstation into the database
        /// </summary>
        /// <param name="workstation">A valid entity</param>
        void Update(WorkstationEntity workstation);

        /// <summary>
        /// Get all workstation for specific company
        /// </summary>
        /// <param name="companyId">Company identifier</param>
        /// <returns>A list of loaded entities</returns>
        List<WorkstationEntity> GetByCompany(int companyId);

        /// <summary>
        /// Get a single instance of a workstation
        /// </summary>
        /// <param name="workstationId">Workstation identifier</param>
        /// <returns>A loaded workstation</returns>
        WorkstationEntity GetInstance(int workstationId);
    }
}
